Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Jun 21, 2025

Problem

The Docker build in GitHub Actions was failing with:

ERROR: failed to solve: failed to read dockerfile: open Dockerfile: no such file or directory

Root cause: The workflow was running docker build -t nlwebnet-demo:test . from the repository root, but the Dockerfile is located at deployment/docker/Dockerfile.

Solutions

🔧 Primary Fix (Minimal Change)

Updated the GitHub Actions workflow to specify the correct Dockerfile path:

# Before (failing)
docker build -t nlwebnet-demo:test .

# After (working)
docker build -f deployment/docker/Dockerfile -t nlwebnet-demo:test .

🚀 Modern Alternative (.NET SDK Container Build)

Added support for .NET 9's built-in container capabilities as a modern alternative:

# No Dockerfile needed!
cd samples/Demo
dotnet publish -c Release -p:PublishProfile=DefaultContainer

Benefits of .NET SDK approach:

  • No Dockerfile required
  • Optimized .NET base images
  • Automatic security updates
  • Simplified build process

📖 Enhanced Documentation

  • Updated deployment README with both approaches
  • Fixed manual Docker build commands
  • Added guidance on when to use each method

Investigation Results

The issue asked whether we still need a Dockerfile given .NET SDK container support. Both approaches have value:

  • .NET SDK Container Build: Ideal for development and simple scenarios
  • Traditional Dockerfile: Better for CI/CD, complex builds, and network-restricted environments

Changes Made

  • .github/workflows/build.yml: Fixed Docker build path + added .NET SDK container demo
  • samples/Demo/NLWebNet.Demo.csproj: Added container configuration properties
  • doc/deployment/README.md: Updated with both containerization approaches

Testing

✅ All 50 existing tests pass
✅ Docker command syntax verified
✅ No breaking changes introduced

Fixes #20.

Warning

Firewall rules blocked me from connecting to one or more addresses

I tried to connect to the following addresses, but was blocked by firewall rules:

  • aka.ms
    • Triggering command: curl -I -sSL --retry 5 --retry-delay 2 --connect-timeout 15 REDACTED (dns block)
  • westus.data.mcr.microsoft.com
    • Triggering command: dotnet publish -c Release -p:PublishProfile=DefaultContainer (dns block)

If you need me to access, download, or install something from one of these locations, you can either:


💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

Copilot AI changed the title [WIP] 🐋 Fix Docker build 🐋 Fix Docker build path in GitHub Actions and add .NET SDK container support Jun 21, 2025
Copilot AI requested a review from jongalloway June 21, 2025 20:42
Copilot finished work on behalf of jongalloway June 21, 2025 20:42
@jongalloway jongalloway marked this pull request as ready for review June 21, 2025 20:45
@jongalloway jongalloway merged commit e55f9fd into main Jun 21, 2025
16 checks passed
@jongalloway jongalloway deleted the copilot/fix-20 branch July 1, 2025 19:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🐋 Fix Docker build

2 participants